0000:	jrqm	0000 		;If there is a transfer in progress, wait for it to finish (RQM => 0 when 5a22 is done)
0001:	ldi	@sr, 0400 	;8-bit transfer mode from 5a22
0002:	ldi	@dr, 0080 	;Load data to DR (RQM => 1)
0003:	ldi	@b, 00C0  	;Load data to B accumulator
0004:	jrqm	0004      	;Wait for transfer to complete (RQM => 0). Takes 4 cycles for change to occur (2 to read data AND RCM=> 0, 2 to actually jump due to 8-bit timings).
0005:	mov	@a, dr    	;Load data to A from DR (RQM => 1)
	and	@b, idb   	;Compare B with the internal data bus (DR from the mov to A occuring simultaneously)
			  	;If moving and performing arithmetic on the same register (AccA/AccB), the arithmetic takes priority.
0006:	jnzb	0003 	  	;If any bits are set, (i.e. b > 0x3F), command is invalid, repeat.
0007:	ldi	@sr, 0000 	;16-bit transfer mode from 5a22
0008:	shr1	@a  		;Time to check which command was input to the DSP
0009:	jca	0028 		;If BIT 0 is set...
000A:	shr1	@a
000B:	jca	0020 		;If BIT1 is set...
000C:	shr1	@a
000D:	jca	0018 		;If BIT2 is set...
000E:	shr1	@a
000F:	jca	0013 		;If BIT3 is set...
0010:	shr1	@a
0011:	jnca	01AB 		;Command 0x00 (multiply) was chosen
0012:	jca	01B2 		;Command 0x10
0013:	shr1	@a		;BIT3-set commands
0014:	jca	01E0 		;Command 0x18
0015:	shr1	@a   		
0016:	jnca	01CF 		;Command 0x08
0017:	jca	01BC 		;Command 0x28
0018:	shr1	@a   		;BIT2-set commands
0019:	jca	001D 		;If BIT3 is set
001A:	shr1	@a   		
001B:	jnca	01F3 		;Command 0x04
001C:	jca	01FF 		;Command 0x14
001D:	shr1	@a
001E:	jnca	023E		;Command 0x0C
001F:	jca	024F		;Command 0x1C
0020:	shr1	@a		;BIT1-set commands
0021:	jca	0025
0022:	shr1	@a
0023:	jnca	027A		;Command 0x02
0024:	jca	035F		;Command 0x0A
0025:	shr1	@a
0026:	jnca	03A2		;Command 0x06
0027:	jca	0419		;Command 0x0E
0028:	shr1	@a		;BIT0-set commands
0029:	jca	002E		;If BIT1 is set
002A:	shr1	@a		;Skip BIT2
002B:	shr1	@a
002C:	jnca	0447		;Command 0x01
002D:	jca	0488		;Command 0x09
002E:	shr1	@a
002F:	jca	0033		;If BIT2 is set
0030:	shr1	@a
0031:	jnca	04A2		;Command 0x03
0032:	jca	04BC		;Command 0x0B
0033:	shr1	@a		;Skip BIT3
0034:	shr1	@a
0035:	jca	04E9		;Command 0x17 or 0x1F
0036:	shr1	@a
0037:	jnca	04CE		;Command 0x07 or 0x0F
0038:	jca	04EF 		;Command 0x27 or 0x2F
;End of jump logic

;Helper subroutine 0x39/0x3A (I hate it when people use 'fall-through' subroutines!)
0039:	ldi	@b, 000F
003A:	ldi	@dp, 0000	
003B:	mov	@l, a		
	and	@a, idb 
003C:	jza	0041
003D:	mov	@l, a
	add	@a, idb
	dpinc
003E:	jnova0	003D
003F:	mov	@a, l
	nop
	dpdec
0040:	mov	@non, dp
	sub	@b, idb
	dpclr
	ret
0041:	mov	@non, b
	xor	@b, idb
	dpclr
	ret

;Helper subroutine 0x42	
0042:	cmp	@a		;Invert A
0043:	jza	0057		;Is not-A zero (Is A = 0xFF)? If yes, branch
0044:	cmp	@a		;If not, restore A
0045:	jza	0051		;Is A zero? If yes, branch
0046:	shr1	@b		;Low bit from multiply WILL be zero- shift to accomodate
0047:	ldi	@k, 7FFF	;Is K treated as a temp-register here?
0048:	mov	@non, k		;K => TRB and also the internal data bus
	and	@b, idb		;Clear top bit of B (presumably, SHRL sign-extends- don't want that)
0049:	mov	@k, b		;K now holds shifted B
	nop
004A:	ldi	@b, 0040	;Load offset into Data ROM into B?
004B:	call	003A
004C:	mov	@rp, b		
	nop
004D:	mov	@l, ro		
	nop
004E:	add	@a, m		;A => A * k * l
004F:	ldi	@rp, 0021	
0050:	mov	@non, rp
	sub	@b, idb		;B => B - RP
	ret
	
;Helper subroutine 0x51	
0051:	mov	@a, b
	and	@b, idb
0052:	jnsb0	0059
0053:	shr1	@a
0054:	ldi	@k, 8000
0055:	ldi	@b, 0010
0056:	mov	@non, k
	xor	@a, idb
	ret
0057:	mov	@a, b
	and	@b, idb
0058:	jnsb0	0053
0059:	ldi	@b, 000F
005A:	jmp	003A
005B:	mov	@k, a
	xor	@a, idb
005C:	mov	@non, tr
	sub	@a, idb
005D:	jsa0	005F
005E:	mov	@a, k
	nop
	ret
005F:	ldi	@rp, 0041
0060:	mov	@non, rp
	add	@a, idb
0061:	mov	@rp, a
	xor	@a, idb
0062:	mov	@l, ro
	nop
0063:	or	@a, m
0064:	jsa0	006A
0065:	jnza	0068
0066:	or	@a, n
0067:	jnsa0	0070
0068:	ldi	@b, 7FFF
0069:	mov	@a, b
	shl2	@b
	ret
006A:	cmp	@a
006B:	jnza	006E
006C:	or	@a, n
006D:	jsa0	0070
006E:	ldi	@a, 8001
006F:	mov	@non, b
	xor	@b, idb
	ret
0070:	mov	@k, b
	and	@b, idb
0071:	jnsb0	0074
0072:	mov	@non, ro
	add	@a, idb
0073:	mov	@non, ro
	add	@a, idb
0074:	mov	@k, b
	xor	@b, idb
0075:	add	@a, m
0076:	or	@b, n
	ret
	
;Helper subroutine 0x77	
0077:	call	003A
0078:	ldi	@rp, 000F
0079:	mov	@non, rp
	sub	@b, idb
007A:	jnsb0	0080
007B:	ldi	@rp, 0031
007C:	mov	@non, rp
	add	@b, idb
007D:	mov	@rp, b
	xor	@b, idb
007E:	mov	@klr, a
	xor	@a, idb
007F:	add	@a, m
	ret
0080:	jzb	0086
0081:	mov	@non, a
	and	@a, idb
0082:	jsa0	0085
0083:	ldi	@a, 7FFF
0084:	mov	@non, b
	xor	@b, idb
	ret
0085:	ldi	@a, 8001
0086:	mov	@non, b
	xor	@b, idb
	ret
	
;Helper subroutine 0x87	
0087:	call	003A
0088:	ldi	@k, 000F
0089:	mov	@non, k
	sub	@b, idb
008A:	jzb	009A
008B:	jnsb0	0094
008C:	ldi	@rp, 0031
008D:	mov	@non, rp
	add	@b, idb
008E:	mov	@rp, b
	xor	@b, idb
008F:	mov	@klr, a
	xor	@a, idb
0090:	add	@b, m
0091:	jnsb0	0093
0092:	dec	@a
	ret
0093:	nop
	ret
0094:	mov	@tr, b
	xor	@b, idb
0095:	mov	@non, a
	add	@b, idb
0096:	mov	@b, a
	xor	@a, idb
0097:	jnsb0	0099
0098:	dec	@a
0099:	jmp	005B
009A:	mov	@b, a
	and	@a, idb
009B:	jsa0	009D
009C:	mov	@non, a
	xor	@a, idb
	ret
009D:	mov	@non, a
	xor	@a, idb
009E:	dec	@a
	ret
	
;Helper subroutine 0x9F	
009F:	mov	@non, a
	xor	@a, idb
00A0:	mov	@k, mem
	or	@a, idb
	dpdec
00A1:	mov	@b, mem
	sub	@a, idb
	dpdec
00A2:	jnsa0	00A8
00A3:	mov	@trb, mem
	sub	@b, idb
	dpinc
00A4:	jsb0	00AB
00A5:	ldi	@b, 0031
00A6:	mov	@trb, mem
	add	@b, idb
	dpinc
00A7:	jmp	00B0
00A8:	mov	@b, k
	nop
00A9:	mov	@trb, mem
	sub	@b, idb
	dpinc
00AA:	jnsb0	00AE
00AB:	ldi	@b, 0031
00AC:	mov	@non, trb
	add	@b, idb
	dpinc
00AD:	jmp	00B0
00AE:	ldi	@b, 0031
00AF:	mov	@trb, k
	add	@b, idb
	dpinc
00B0:	mov	@a, b
	nop
00B1:	sub	@a, ram
	m8
00B2:	mov	@rp, a
	xor	@a, idb
00B3:	mov	@klr, mem
	nop
	m8
00B4:	mov	@mem, trb
	add	@a, m
	m8
00B5:	mov	@mem, a
	xor	@a, idb
	dpdec
	m8
00B6:	mov	@a, b
	nop
00B7:	sub	@a, ram
	m8
00B8:	mov	@rp, a
	xor	@a, idb
00B9:	mov	@klr, mem
	nop
	m8
00BA:	mov	@mem, trb
	add	@a, m
	m8
00BB:	mov	@mem, a
	xor	@a, idb
	dpdec
	m8
00BC:	mov	@a, b
	nop
00BD:	sub	@a, ram
	m8
00BE:	mov	@rp, a
	xor	@a, idb
00BF:	mov	@klr, mem
	nop
	m8
00C0:	mov	@mem, trb
	add	@a, m
	m8
00C1:	mov	@mem, a
	xor	@a, idb
	m8
	ret
00C2:	ldi	@k, 0004
00C3:	mov	@l, a
	xor	@a, idb
00C4:	add	@a, m
00C5:	jza	00CD
00C6:	cmp	@a
00C7:	jza	00D0
00C8:	jsa0	00CB
00C9:	ldi	@a, 8001
00CA:	nop
	ret
00CB:	ldi	@a, 7FFF
00CC:	nop
	ret
00CD:	add	@a, n
00CE:	jsa0	00CB
00CF:	nop
	ret
00D0:	add	@a, n
00D1:	jnsa0	00C9
00D2:	nop
	ret
	
;Helper subroutine 0x0D3	
00D3:	mov	@non, a
	and	@a, idb
	dpclr
00D4:	jza	00F2
00D5:	jnsa0	00DA
00D6:	cmp	@a
	dpinc
00D7:	inc	@a
00D8:	jnova0	00DA
00D9:	dec	@a
00DA:	ldi	@rp, 0064
00DB:	mov	@klr, a
	cmp	@b
	rpdec
00DC:	mov	@a, ro
	inc	@b
	rpdec
00DD:	mov	@tr, ro
	add	@a, m
00DE:	mov	@rp, a
	xor	@a, idb
00DF:	mov	@l, ro
	inc	@b
00E0:	mov	@trb, k
	sub	@a, m
00E1:	mov	@non, tr
	sub	@a, idb
00E2:	mov	@k, a
	xor	@a, idb
00E3:	mov	@k, trb
	or	@a, m
00E4:	mov	@non, a
	add	@a, idb
00E5:	jnova0	00E7
00E6:	ldi	@a, 7FFF
00E7:	mov	@l, a
	xor	@a, idb
00E8:	sub	@a, m
00E9:	mov	@non, tr
	sub	@a, idb
00EA:	mov	@k, a
	xor	@a, idb
00EB:	or	@a, m
00EC:	mov	@non, a
	add	@a, idb
00ED:	jnova0	00EF
00EE:	ldi	@a, 7FFF
00EF:	jdpl0	00F4
00F0:	cmp	@a
00F1:	inc	@a
	dpclr
	ret
00F2:	ldi	@a, 7FFF
00F3:	ldi	@b, 002F
00F4:	nop
	dpclr
	ret
00F5:	mov	@non, a
	and	@a, idb
00F6:	jsa0	00F9
00F7:	call	0102
00F8:	nop
	ret
00F9:	mov	@k, b
	xor	@b, idb
00FA:	mov	@l, a
	xor	@a, idb
00FB:	mov	@non, k
	sub	@b, idb
00FC:	mov	@non, l
	sbb	@a, idb
00FD:	call	0102
00FE:	mov	@k, b
	xor	@b, idb
00FF:	mov	@l, a
	xor	@a, idb
0100:	mov	@non, k
	sub	@b, idb
0101:	mov	@non, l
	sbb	@a, idb
	ret
	
;Helper subroutine 0x102	
0102:	mov	@non, b
	and	@b, idb
0103:	jsb0	010B
0104:	mov	@klm, b
	xor	@b, idb
0105:	mov	@l, a
	add	@b, m
0106:	ldi	@a, 0000
0107:	jnsb0	0109
0108:	ldi	@a, FFFF
0109:	add	@b, n
010A:	adc	@a, m
	ret
010B:	ldi	@k, 7FFF
010C:	mov	@non, k
	and	@b, idb
010D:	mov	@klm, b
	xor	@b, idb
010E:	mov	@l, a
	add	@b, m
010F:	ldi	@a, 0000
0110:	jnsb0	0112
0111:	ldi	@a, FFFF
0112:	add	@b, ram
0113:	add	@b, n
0114:	adc	@a, m
	ret
0115:	call	0117
0116:	call	0117

;Helper subroutine 0x117 (recursive)
0117:	mov	@dp, ro
	nop
	rpdec
0118:	mov	@b, mem
	nop
	dpdec
0119:	mov	@tr, mem
	nop
	dpdec
011A:	mov	@trb, mem
	nop
011B:	call	011D
011C:	call	011D

;Helper subroutine 0x11D (recursive)
011D:	mov	@dp, ro
	nop
	rpdec
011E:	mov	@klm, b
	nop
	m1
011F:	mov	@klm, tr
	add	@a, m
	m3
0120:	mov	@klm, trb
	add	@a, m
0121:	mov	@dp, ro
	add	@a, m
	rpdec
0122:	mov	@mem, a
	xor	@a, idb
	ret
	
;Helper subroutine 0x123	
0123:	ldi	@rp, 0117
0124:	shr1	@b
0125:	jncb	0128
0126:	shr1	@a
0127:	inc	@b
0128:	mov	@trb, b
	nop
0129:	mov	@klr, a
	xor	@a, idb
	rpdec
012A:	ldi	@b, 00D6
012B:	mov	@l, ro
	add	@b, m
012C:	mov	@rp, b
	add	@a, n
012D:	mov	@k, a
	nop
012E:	mov	@b, ro
	nop
	rpdec
012F:	mov	@a, ro
	sub	@b, idb
0130:	mov	@l, b
	nop
0131:	mov	@b, trb
	add	@a, m
	ret
	
;Helper subroutine 0x132	
0132:	mov	@non, a
	and	@a, idb
	dpclr
0133:	jnsa0	0137
0134:	cmp	@a
	dpinc
0135:	inc	@a
0136:	jova0	014F
0137:	ldi	@rp, 021D
0138:	mov	@klr, a
	xor	@a, idb
	rpdec
0139:	mov	@l, ro
	add	@a, m
	rpdec
013A:	mov	@non, ro
	add	@a, idb
	rpdec
013B:	mov	@b, ro
	nop
	rpdec
013C:	mov	@trb, ro
	and	@b, n
	rpdec
013D:	mov	@klr, b
	xor	@b, idb
013E:	mov	@rp, a
	add	@b, m
013F:	mov	@klr, b
	xor	@b, idb
0140:	mov	@tr, ro
	add	@b, m
0141:	mov	@non, trb
	add	@a, idb
0142:	mov	@rp, a
	xor	@a, idb
0143:	mov	@l, ro
	add	@a, idb
0144:	mov	@non, b
	sub	@a, idb
0145:	jnova0	0147
0146:	ldi	@a, 8001
0147:	mov	@b, tr
	nop
0148:	add	@b, m
0149:	jnovb0	014B
014A:	ldi	@b, 7FFF
014B:	jdpl0	014E
014C:	cmp	@b
014D:	inc	@b
	dpclr
	ret
014E:	nop
	dpclr
	ret
014F:	mov	@non, b
	xor	@b, idb
	dpclr
	ret
0150:	mov	@non, a
	and	@a, idb
	dpclr
0151:	jnsa0	0155
0152:	cmp	@a
	dpinc
0153:	inc	@a
0154:	jova0	0164
0155:	ldi	@rp, 0322
0156:	mov	@b, ro
	nop
	rpdec
0157:	mov	@klr, a
	xor	@a, idb
	rpdec
0158:	mov	@l, ro
	add	@a, n
	rpdec
0159:	mov	@non, ro
	and	@a, idb
015A:	mov	@k, a
	add	@b, m
015B:	mov	@rp, b
	xor	@b, idb
015C:	mov	@non, ro
	add	@b, idb
	rpdec
015D:	mov	@a, ro
	sub	@b, idb
015E:	mov	@l, b
	xor	@b, idb
015F:	add	@a, m
0160:	jdpl0	0164
0161:	mov	@k, a
	nop
0162:	ldi	@a, 8001
0163:	mov	@non, k
	sub	@a, idb
	dpclr
	ret
0164:	mov	@non, b
	xor	@b, idb
	dpclr
	ret
	
;Helper subroutine 0x165	
0165:	mov	@dp, b
	xor	@b, idb
0166:	ldi	@mem, 7FFF
0167:	nop
	m1
0168:	mov	@mem, b
	nop
	m3
0169:	mov	@mem, b
	nop
	dpdec
	m2
016A:	mov	@mem, b
	nop
	dpdec
016B:	mov	@mem, b
	nop
	dpinc
	m1
016C:	mov	@b, dp
	nop
016D:	ldi	@dp, 0000
016E:	mov	@mem, b
	nop
016F:	call	0132
0170:	mov	@tr, b
	nop
	dpclr
0171:	mov	@dp, mem
	cmp	@b
0172:	mov	@mem, a
	inc	@b
	m3
0173:	jnovb0	0175
0174:	ldi	@b, 7FFF
0175:	mov	@mem, b
	xor	@b, idb
	dpdec
	m3
0176:	mov	@mem, tr
	add	@b, idb
	m3
0177:	mov	@mem, a
	nop
	m2
	ret
	
;Helper subroutine 0x178	
0178:	ldi	@dp, 0000
0179:	mov	@mem, b
	nop
017A:	call	0132
017B:	mov	@tr, b
	nop
	dpclr
017C:	mov	@dp, mem
	cmp	@b
017D:	mov	@mem, a
	inc	@b
	dpdec
017E:	jnovb0	0180
017F:	ldi	@b, 7FFF
0180:	mov	@mem, b
	xor	@b, idb
	dpdec
0181:	mov	@mem, b
	nop
	m1
0182:	mov	@mem, b
	nop
	dpinc
0183:	mov	@mem, a
	nop
	dpinc
0184:	mov	@mem, tr
	nop
	m3
0185:	mov	@mem, b
	nop
	dpdec
0186:	mov	@mem, b
	nop
	dpdec
0187:	ldi	@mem, 7FFF
0188:	mov	@b, tr
	nop
	m2
	ret
0189:	mov	@dp, b
	xor	@b, idb
018A:	ldi	@mem, 4000
018B:	nop
	m1
018C:	mov	@mem, b
	nop
	m3
018D:	mov	@mem, b
	nop
	dpdec
	m2
018E:	mov	@mem, b
	nop
	dpdec
018F:	mov	@mem, b
	nop
	dpinc
	m1
0190:	mov	@b, dp
	nop
0191:	ldi	@dp, 0000
0192:	mov	@mem, b
	nop
0193:	call	0132
0194:	shr1	@b
0195:	mov	@tr, b
	shr1	@a
	dpclr
0196:	mov	@dp, mem
	cmp	@b
0197:	mov	@mem, a
	inc	@b
	m3
0198:	mov	@mem, b
	xor	@b, idb
	dpdec
	m3
0199:	mov	@mem, tr
	add	@b, idb
	m3
019A:	mov	@mem, a
	nop
	m2
	ret
019B:	ldi	@dp, 0000
019C:	mov	@mem, b
	nop
019D:	call	0132
019E:	shr1	@b
019F:	mov	@tr, b
	shr1	@a
	dpclr
01A0:	mov	@dp, mem
	cmp	@b
01A1:	mov	@mem, a
	inc	@b
	dpdec
01A2:	mov	@mem, b
	xor	@b, idb
	dpdec
01A3:	mov	@mem, b
	nop
	m1
01A4:	mov	@mem, b
	nop
	dpinc
01A5:	mov	@mem, a
	nop
	dpinc
01A6:	mov	@mem, tr
	nop
	m3
01A7:	mov	@mem, b
	nop
	dpdec
01A8:	mov	@mem, b
	nop
	dpdec
01A9:	ldi	@mem, 4000
01AA:	mov	@b, tr
	nop
	m2
	ret
	
;Command 0x00
;Multiply two numbers
01AB:	jrqm	01AB		;Wait for first input from 5a22
01AC:	mov	@k, dr		;Store for multiply
	nop
01AD:	jrqm	01AD		;Wait for second input
01AE:	mov	@l, drnf	;Store for k*l multiply. RQM stays at 0.
	nop
01AF:	or	@a, m		;Store high word in A (A will be zero from shifts)
01B0:	mov	@dr, a		;Output result (RQM => 1)
	xor	@a, idb		;Clear A at the same time (in reality, only top 2 bits need to be cleared?)
01B1:	jmp	0000		;We are done! Wait for result read/next command


01B2:	jrqm	01B2
01B3:	mov	@a, dr
	nop
01B4:	jrqm	01B4
01B5:	mov	@b, drnf
	nop
01B6:	call	003A
01B7:	call	00D3
01B8:	mov	@dr, a
	xor	@a, idb
01B9:	jrqm	01B9
01BA:	mov	@dr, b
	xor	@b, idb
01BB:	jmp	0000

;Command 0x28
;Calculate Euclidean Distance of a vector
;Inputs:
;X[I/T], Y[I/T], Z[I/T]
;Outputs:
;R[I/T] = sqrt(X^2 + Y^2 + Z^2)
01BC:	jrqm	01BC 		;Wait for transfer to complete (RQM => 0)
01BD:	mov	@k, dr 		;RQM => 1, get X
	nop             	
01BE:	mov	@l, k 		;Multiply X by itself (l * k => m-high word n-low word)
	nop           		
01BF:	mov	@b, a 		;Zero B (recall that A was zeroed-out before jump)
	add	@a, m 		;Get high word, add ('mov') to A (X). Carry is ignored since this is the first variable in the sum.
01C0:	jrqm	01C0 		;Wait for 5a22 to transfer Y (RQM => 0)
01C1:	mov	@k, dr 		;RQM => 1, get Y (l*k => m, n)
	add	@b, n 		;Get low word, add ('mov') to B  (X- new 'n' isn't latched yet)
01C2:	mov	@l, k 		;Multiply Y by itself (l * k => m, n)
	nop             	
01C3:	add	@b, n 		;Get low word, add to B
01C4:	jrqm	01C4 		;Wait for Z
01C5:	mov	@k, drnf 	;RQM stays at 0, get Z
	adc	@a, m 		;Get the high word from Y^2, add to A (carry is appropriate since low word may NOW overflow)
01C6:	mov	@l, k 		;Multiply Z by itself
	nop
01C7:	add	@b, n 		;Get low word (Z)
01C8:	adc	@a, m 		;Get high word (Z)
01C9:	call	0042		;
01CA:	dec	@b		;
01CB:	call	0123		;
01CC:	call	0077		;
01CD:	mov	@dr, a		;RQM => 1
	nop
01CE:	jmp	0000 		;Wait for result read/next command



01CF:	jrqm	01CF
01D0:	mov	@k, dr
	nop
01D1:	mov	@l, k
	nop
01D2:	mov	@b, a
	add	@a, n
01D3:	jrqm	01D3
01D4:	mov	@k, dr
	adc	@b, m
01D5:	mov	@l, k
	nop
01D6:	add	@a, n
01D7:	jrqm	01D7
01D8:	mov	@k, drnf
	adc	@b, m
01D9:	mov	@l, k
	nop
01DA:	add	@a, n
01DB:	adc	@b, m
01DC:	mov	@dr, a
	nop
01DD:	jrqm	01DD
01DE:	mov	@dr, b
	nop
01DF:	jmp	0000
01E0:	jrqm	01E0
01E1:	mov	@k, dr
	nop
01E2:	mov	@l, k
	nop
01E3:	mov	@b, a
	add	@a, n
01E4:	jrqm	01E4
01E5:	mov	@k, dr
	adc	@b, m
01E6:	mov	@l, k
	nop
01E7:	add	@a, n
01E8:	jrqm	01E8
01E9:	mov	@k, dr
	adc	@b, m
01EA:	mov	@l, k
	nop
01EB:	add	@a, n
01EC:	jrqm	01EC
01ED:	mov	@k, drnf
	adc	@b, m
01EE:	mov	@l, k
	nop
01EF:	sub	@a, n
01F0:	sbb	@b, m
01F1:	mov	@dr, b
	nop
01F2:	jmp	0000

;Command 0x04
01F3:	jrqm	01F3		;Get first param
01F4:	mov	@a, dr		;RQM => 1
	nop
01F5:	call	0132		
01F6:	mov	@k, b
	xor	@b, idb
01F7:	jrqm	01F7
01F8:	mov	@l, drnf
	nop
01F9:	mov	@k, a
	or	@b, m
01FA:	mov	@dr, b
	xor	@b, idb
01FB:	mov	@a, b
	or	@b, m
01FC:	jrqm	01FC
01FD:	mov	@dr, b
	xor	@b, idb
01FE:	jmp	0000


01FF:	ldi	@dp, 00F0
0200:	jrqm	0200
0201:	mov	@mem, dr
	nop
	m1
0202:	jrqm	0202
0203:	mov	@mem, dr
	or	@a, idb
	m3
0204:	jrqm	0204
0205:	mov	@mem, dr
	nop
	dpinc
	m9
0206:	jrqm	0206
0207:	mov	@mem, dr
	nop
	dpinc
0208:	jrqm	0208
0209:	mov	@mem, dr
	nop
	m4
020A:	call	0132
020B:	mov	@mem, b
	xor	@b, idb
020C:	ldi	@b, 0010
020D:	call	003A
020E:	call	00D3
020F:	nop
	m4
0210:	mov	@mem, a
	xor	@a, idb
	m4
0211:	mov	@mem, b
	or	@a, ram
0212:	call	003A
0213:	mov	@klm, a
	xor	@a, idb
	m1
0214:	mov	@mem, b
	or	@a, m
	m4
0215:	mov	@mem, a
	nop
	m8
0216:	mov	@a, mem
	nop
	m9
0217:	call	0132
0218:	mov	@trb, b
	nop
	dpinc
0219:	mov	@klm, b
	xor	@b, idb
	dpinc
021A:	mov	@klm, a
	or	@b, m
	dpdec
021B:	mov	@k, mem
	add	@b, m
	dpdec
	ma
021C:	add	@b, ram
021D:	mov	@mem, b
	xor	@b, idb
	dpinc
	ma
021E:	mov	@a, b
	or	@b, n
	dpinc
021F:	mov	@klm, trb
	or	@a, m
	m4
0220:	mov	@mem, b
	add	@b, n
	dpdec
0221:	mov	@tr, a
	adc	@a, m
0222:	mov	@mem, b
	xor	@b, idb
	dpinc
0223:	mov	@trb, a
	or	@b, ram
0224:	mov	@a, tr
	sub	@b, n
0225:	sbb	@a, m
0226:	call	0042
0227:	mov	@l, a
	xor	@a, idb
	dpclr
0228:	mov	@klm, l
	add	@b, ram
0229:	or	@a, m
022A:	call	0077
022B:	ldi	@dp, 00F0
022C:	add	@a, ram
022D:	mov	@mem, a
	nop
	dpinc
	mf
022E:	mov	@a, trb
	or	@b, ram
022F:	call	0042
0230:	mov	@l, a
	xor	@a, idb
	dpclr
	m1
0231:	mov	@klm, l
	add	@b, ram
0232:	sub	@a, m
0233:	call	0077
0234:	jrqm	0234
0235:	mov	@non, drnf
	add	@a, idb
	dpclr
	mf
0236:	mov	@dr, mem
	nop
	m1
0237:	jrqm	0237
0238:	mov	@dr, mem
	nop
	m3
0239:	add	@a, ram
023A:	mov	@mem, a
	nop
023B:	jrqm	023B
023C:	mov	@dr, a
	nop
023D:	jmp	0000
023E:	jrqm	023E
023F:	mov	@a, dr
	nop
0240:	ldi	@dp, 0040
0241:	jrqm	0241
0242:	mov	@mem, dr
	nop
0243:	call	0132
0244:	mov	@tr, a
	xor	@a, idb
	dpclr
0245:	mov	@klm, tr
	nop
0246:	add	@a, m
0247:	mov	@l, b
	xor	@b, idb
0248:	jrqm	0248
0249:	mov	@k, drnf
	sub	@b, m
024A:	mov	@l, tr
	add	@a, m
024B:	mov	@dr, a
	add	@b, m
024C:	jrqm	024C
024D:	mov	@dr, b
	nop
024E:	jmp	0000
024F:	jrqm	024F
0250:	mov	@a, dr
	nop
0251:	ldi	@dp, 0042
0252:	jrqm	0252
0253:	mov	@mem, dr
	nop
	dpinc
0254:	jrqm	0254
0255:	mov	@mem, dr
	nop
	dpclr
0256:	jrqm	0256
0257:	mov	@mem, dr
	nop
	dpinc
0258:	jrqm	0258
0259:	mov	@mem, dr
	nop
025A:	call	0132
025B:	mov	@trb, b
	xor	@b, idb
	dpclr
025C:	mov	@klm, a
	xor	@a, idb
	dpinc
025D:	mov	@k, mem
	add	@a, m
	dpclr
025E:	mov	@l, trb
	add	@b, m
025F:	mov	@k, mem
	add	@a, m
0260:	mov	@mem, a
	sub	@b, m
	dpinc
0261:	mov	@mem, b
	nop
	dpinc
0262:	mov	@a, mem
	nop
0263:	call	0132
0264:	mov	@trb, b
	xor	@b, idb
	dpclr
0265:	mov	@klm, a
	xor	@a, idb
0266:	jrqm	0266
0267:	mov	@k, drnf
	add	@a, m
0268:	mov	@l, trb
	add	@b, m
0269:	mov	@k, mem
	sub	@a, m
026A:	mov	@mem, a
	add	@b, m
	dpinc
026B:	nop
	dpinc
026C:	mov	@mem, b
	nop
	dpinc
026D:	mov	@a, mem
	nop
026E:	call	0132
026F:	mov	@trb, b
	xor	@b, idb
	dpclr
0270:	mov	@dr, mem
	nop
	dpinc
0271:	mov	@klm, a
	xor	@a, idb
	dpinc
0272:	mov	@k, mem
	add	@a, m
	dpdec
0273:	mov	@l, trb
	add	@b, m
0274:	mov	@k, mem
	add	@a, m
0275:	jrqm	0275
0276:	mov	@dr, a
	sub	@b, m
0277:	jrqm	0277
0278:	mov	@dr, b
	nop
0279:	jmp	0000
027A:	ldi	@dp, 003A
027B:	jrqm	027B
027C:	mov	@mem, dr
	nop
	m1
027D:	jrqm	027D
027E:	mov	@mem, dr
	nop
	m3
027F:	jrqm	027F
0280:	mov	@mem, dr
	nop
0281:	ldi	@dp, 00CF
0282:	jrqm	0282
0283:	mov	@mem, dr
	nop
	m8
0284:	mov	@mem, a
	nop
	dpdec
	m8
0285:	jrqm	0285
0286:	mov	@mem, dr
	nop
	m8
0287:	mov	@mem, a
	nop
	dpinc
	m3
0288:	ldi	@b, 007F
0289:	jrqm	0289
028A:	mov	@a, dr
	nop
028B:	call	0178
028C:	ldi	@b, 0076
028D:	jrqm	028D
028E:	mov	@a, drnf
	nop
028F:	call	0165
0290:	ldi	@dp, 0049
0291:	mov	@mem, b
	xor	@b, idb
	dpdec
0292:	ldi	@a, 0000
0293:	ldi	@rp, 007C
0294:	ldi	@dp, 007F
0295:	mov	@b, mem
	nop
	dpdec
0296:	mov	@tr, mem
	nop
	dpdec
0297:	mov	@trb, mem
	nop
0298:	ldi	@dp, 0076
0299:	mov	@klm, b
	nop
	m1
029A:	mov	@klm, tr
	add	@a, m
	m3
029B:	mov	@klm, trb
	add	@a, m
029C:	mov	@dp, rp
	add	@a, m
	rpdec
029D:	mov	@mem, a
	xor	@a, idb
029E:	ldi	@dp, 0075
029F:	mov	@klm, b
	nop
	m1
02A0:	mov	@klm, tr
	add	@a, m
	m3
02A1:	mov	@klm, trb
	add	@a, m
02A2:	mov	@dp, rp
	add	@a, m
	rpdec
02A3:	mov	@mem, a
	xor	@a, idb
02A4:	ldi	@dp, 0074
02A5:	mov	@klm, b
	nop
	m1
02A6:	mov	@klm, tr
	add	@a, m
	m3
02A7:	mov	@klm, trb
	add	@a, m
02A8:	mov	@dp, rp
	add	@a, m
	rpdec
02A9:	mov	@mem, a
	xor	@a, idb
02AA:	ldi	@rp, 006C
02AB:	ldi	@dp, 006F
02AC:	mov	@b, mem
	nop
	dpdec
02AD:	mov	@tr, mem
	nop
	dpdec
02AE:	mov	@trb, mem
	nop
02AF:	ldi	@dp, 0076
02B0:	mov	@klm, b
	nop
	m1
02B1:	mov	@klm, tr
	add	@a, m
	m3
02B2:	mov	@klm, trb
	add	@a, m
02B3:	mov	@dp, rp
	add	@a, m
	rpdec
02B4:	mov	@mem, a
	xor	@a, idb
02B5:	ldi	@dp, 0075
02B6:	mov	@klm, b
	nop
	m1
02B7:	mov	@klm, tr
	add	@a, m
	m3
02B8:	mov	@klm, trb
	add	@a, m
02B9:	mov	@dp, rp
	add	@a, m
	rpdec
02BA:	mov	@mem, a
	xor	@a, idb
02BB:	ldi	@dp, 0074
02BC:	mov	@klm, b
	nop
	m1
02BD:	mov	@klm, tr
	add	@a, m
	m3
02BE:	mov	@klm, trb
	add	@a, m
02BF:	mov	@dp, rp
	add	@a, m
	rpdec
02C0:	mov	@mem, a
	xor	@a, idb
02C1:	ldi	@rp, 005C
02C2:	ldi	@dp, 005F
02C3:	mov	@b, mem
	nop
	dpdec
02C4:	mov	@tr, mem
	nop
	dpdec
02C5:	mov	@trb, mem
	nop
02C6:	ldi	@dp, 0076
02C7:	mov	@klm, b
	nop
	m1
02C8:	mov	@klm, tr
	add	@a, m
	m3
02C9:	mov	@klm, trb
	add	@a, m
02CA:	mov	@dp, rp
	add	@a, m
	rpdec
02CB:	mov	@mem, a
	xor	@a, idb
02CC:	ldi	@dp, 0075
02CD:	mov	@klm, b
	nop
	m1
02CE:	mov	@klm, tr
	add	@a, m
	m3
02CF:	mov	@klm, trb
	add	@a, m
02D0:	mov	@dp, rp
	add	@a, m
	rpdec
02D1:	mov	@mem, a
	xor	@a, idb
02D2:	ldi	@dp, 0074
02D3:	mov	@klm, b
	nop
	m1
02D4:	mov	@klm, tr
	add	@a, m
	m3
02D5:	mov	@klm, trb
	add	@a, m
02D6:	mov	@dp, rp
	add	@a, m
	rpdec
02D7:	mov	@mem, a
	xor	@a, idb
02D8:	ldi	@b, 0000
02D9:	ldi	@rp, 032B
02DA:	ldi	@dp, 00CF
02DB:	mov	@tr, mem
	nop
	dpdec
02DC:	mov	@trb, mem
	nop
02DD:	ldi	@dp, 003A
02DE:	mov	@klm, tr
	or	@a, ram
	m8
02DF:	mov	@l, trb
	add	@a, m
02E0:	mov	@klr, a
	sub	@a, m
02E1:	mov	@mem, k
	or	@b, m
	m8
02E2:	mov	@mem, b
	xor	@b, idb
	dpinc
	m8
02E3:	mov	@klr, a
	xor	@a, idb
02E4:	mov	@mem, k
	or	@b, m
	m8
02E5:	mov	@mem, b
	xor	@b, idb
	dpdec
	m1
02E6:	mov	@klm, tr
	or	@a, ram
	m8
02E7:	mov	@l, trb
	add	@a, m
02E8:	mov	@klr, a
	sub	@a, m
02E9:	mov	@mem, k
	or	@b, m
	m8
02EA:	mov	@mem, b
	xor	@b, idb
	dpinc
	m8
02EB:	mov	@klr, a
	xor	@a, idb
02EC:	mov	@mem, k
	or	@b, m
	m8
02ED:	mov	@mem, b
	xor	@b, idb
	dpdec
	m3
02EE:	mov	@klm, tr
	or	@a, ram
	m8
02EF:	mov	@l, trb
	add	@a, m
02F0:	mov	@klr, a
	sub	@a, m
02F1:	mov	@mem, k
	or	@b, m
	m8
02F2:	mov	@mem, b
	xor	@b, idb
	dpinc
	m8
02F3:	mov	@klr, a
	xor	@a, idb
02F4:	mov	@mem, k
	or	@b, m
	m8
02F5:	mov	@mem, b
	xor	@b, idb
	dpdec
	m8
02F6:	mov	@a, mem
	nop
02F7:	call	0039
02F8:	ldi	@dp, 004C
02F9:	mov	@mem, a
	xor	@a, idb
	m8
02FA:	mov	@mem, b
	xor	@b, idb
02FB:	ldi	@b, FFF5
02FC:	ldi	@a, 1200
02FD:	add	@a, ram
02FE:	call	003A
02FF:	call	00D3
0300:	call	0077
0301:	mov	@tr, a
	xor	@a, idb
0302:	mov	@k, drnf
	or	@a, idb
0303:	mov	@l, sgn
	nop
0304:	mov	@a, b
	sub	@b, m
0305:	mov	@k, tr
	sub	@b, idb
0306:	sub	@a, m
0307:	jnsb0	030B
0308:	mov	@a, drnf
	nop
0309:	ldi	@b, 0000
030A:	jmp	030E
030B:	mov	@k, b
	xor	@b, idb
030C:	or	@b, m
030D:	shl2	@b
030E:	ldi	@dp, 0040
030F:	mov	@mem, b
	nop
0310:	call	0132
0311:	ldi	@dp, 0048
0312:	mov	@mem, a
	nop
	dpinc
	m8
0313:	mov	@mem, b
	xor	@b, idb
0314:	call	003A
0315:	call	00D3
0316:	ldi	@dp, 004A
0317:	mov	@mem, a
	xor	@a, idb
	m8
0318:	mov	@mem, b
	xor	@b, idb
	dpclr
	m8
0319:	ldi	@rp, 032A
031A:	mov	@klr, mem
	nop
	rpdec
031B:	mov	@a, ro
	or	@b, m
	rpdec
031C:	mov	@l, b
	xor	@b, idb
031D:	mov	@dp, ro
	add	@a, m
	rpdec
031E:	mov	@l, a
	xor	@a, idb
031F:	mov	@k, mem
	or	@b, m
	dpdec
	mc
0320:	mov	@l, b
	xor	@b, idb
	dpdec
0321:	sub	@b, m
0322:	mov	@mem, b
	nop
0323:	ldi	@dp, 0040
0324:	mov	@klm, mem
	nop
0325:	mov	@b, ro
	or	@a, m
	rpdec
0326:	mov	@klr, a
	xor	@a, idb
	rpdec
0327:	add	@b, m
0328:	mov	@l, b
	xor	@b, idb
0329:	mov	@dp, ro
	or	@b, m
	rpdec
032A:	mov	@klm, b
	xor	@b, idb
032B:	mov	@dp, ro
	or	@a, ram
	rpdec
032C:	mov	@k, mem
	add	@a, m
032D:	mov	@l, a
	nop
032E:	mov	@dp, ro
	or	@b, m
032F:	mov	@mem, b
	xor	@b, idb
0330:	call	003A
0331:	call	00D3
0332:	ldi	@dp, 004B
0333:	mov	@mem, a
	xor	@a, idb
	m8
0334:	mov	@mem, b
	xor	@b, idb
0335:	ldi	@dp, 00C9
0336:	mov	@a, mem
	nop
0337:	ldi	@b, FFF1
0338:	call	003A
0339:	call	00D3
033A:	ldi	@dp, 00C8
033B:	mov	@k, a
	nop
033C:	mov	@a, mem
	nop
033D:	call	003A
033E:	mov	@l, a
	xor	@a, idb
033F:	sub	@a, m
0340:	call	0077
0341:	mov	@tr, a
	nop
0342:	ldi	@dp, 009A
0343:	mov	@a, mem
	nop
	md
0344:	call	0039
0345:	ldi	@dp, 004A
0346:	mov	@klm, a
	xor	@a, idb
	m8
0347:	or	@a, m
0348:	add	@b, ram
0349:	call	0077
034A:	ldi	@dp, 000C
034B:	mov	@dr, mem
	nop
	dpdec
	m4
034C:	jrqm	034C
034D:	mov	@dr, tr
	nop
	dpdec
034E:	ldi	@dp, 00C9
034F:	mov	@klm, a
	xor	@a, idb
0350:	or	@a, m
0351:	ldi	@dp, 006F
0352:	mov	@klm, a
	xor	@a, idb
	m1
0353:	mov	@k, mem
	or	@a, m
0354:	ldi	@dp, 00BA
0355:	add	@a, ram
	dpdec
0356:	jrqm	0356
0357:	mov	@dr, a
	nop
0358:	mov	@mem, a
	xor	@a, idb
	dpinc
	m1
0359:	sub	@a, m
035A:	add	@a, ram
	dpdec
035B:	jrqm	035B
035C:	mov	@dr, a
	nop
035D:	mov	@mem, a
	nop
035E:	jmp	0000
035F:	ldi	@dp, 0009
0360:	jrqm	0360
0361:	mov	@mem, drnf
	nop
0362:	ldi	@dp, 0046
0363:	mov	@mem, a
	xor	@a, idb
0364:	ldi	@dp, 0009
0365:	ldi	@b, 0001
0366:	mov	@klm, mem
	add	@b, idb
0367:	mov	@mem, b
	or	@a, m
	dpdec
	mc
0368:	add	@a, ram
0369:	ldi	@b, 0007
036A:	call	003A
036B:	call	00D3
036C:	ldi	@dp, 004C
036D:	mov	@klm, a
	xor	@a, idb
	m8
036E:	add	@b, ram
036F:	mov	@trb, b
	or	@a, m
0370:	mov	@tr, a
	nop
0371:	call	0077
0372:	ldi	@dp, 003F
0373:	mov	@mem, a
	nop
	m1
0374:	mov	@mem, a
	nop
0375:	ldi	@dp, 004B
0376:	mov	@a, tr
	nop
0377:	mov	@klm, a
	xor	@a, idb
	m8
0378:	mov	@b, trb
	or	@a, m
0379:	add	@b, ram
037A:	call	0077
037B:	ldi	@dp, 003E
037C:	mov	@mem, a
	nop
	m1
037D:	mov	@mem, a
	xor	@a, idb
037E:	ldi	@dp, 0046
037F:	mov	@dp, mem
	nop
0380:	jdpln0	0392
0381:	ldi	@dp, 003F
0382:	mov	@klm, mem
	nop
	dpdec
0383:	mov	@klm, mem
	or	@a, m
	dpinc
	m1
0384:	mov	@dr, a
	xor	@a, idb
0385:	mov	@klm, mem
	or	@b, m
	dpdec
0386:	jrqm	0386
0387:	mov	@dr, b
	xor	@b, idb
0388:	mov	@klm, mem
	or	@a, m
0389:	jrqm	0389
038A:	mov	@dr, a
	xor	@a, idb
038B:	or	@b, m
038C:	jrqm	038C
038D:	mov	@dr, b
	nop
038E:	jrqm	038E
038F:	mov	@non, drnf
	xor	@b, idb
0390:	jzb	0364
0391:	jmp	0001
0392:	ldi	@dp, 003F
0393:	mov	@klm, mem
	nop
	dpdec
0394:	mov	@klm, mem
	add	@a, m
	dpinc
	m1
0395:	mov	@dr, a
	xor	@a, idb
0396:	mov	@klm, mem
	add	@b, m
	dpdec
0397:	ldi	@sr, 0001
0398:	jrqm	0398
0399:	mov	@dr, b
	xor	@b, idb
039A:	mov	@klm, mem
	add	@a, m
039B:	mov	@dr, a
	xor	@a, idb
039C:	add	@b, m
039D:	mov	@dr, b
	nop
039E:	ldi	@sr, 0000
039F:	mov	@non, drnf
	xor	@b, idb
03A0:	jzb	0364
03A1:	jmp	0001
03A2:	ldi	@dp, 00BC
03A3:	ldi	@l, 0001
03A4:	jrqm	03A4
03A5:	mov	@k, dr
	nop
03A6:	mov	@mem, k
	or	@a, m
	m8
03A7:	mov	@mem, a
	xor	@a, idb
	m9
03A8:	jrqm	03A8
03A9:	mov	@k, dr
	nop
03AA:	mov	@mem, k
	or	@a, m
	m8
03AB:	mov	@mem, a
	xor	@a, idb
	mb
03AC:	jrqm	03AC
03AD:	mov	@k, drnf
	nop
03AE:	mov	@mem, k
	or	@a, m
	m8
03AF:	mov	@mem, a
	nop
	ma
03B0:	mov	@b, mem
	nop
	m8
03B1:	mov	@a, mem
	nop
	dpdec
	m8
03B2:	sub	@b, ram
	m8
03B3:	sbb	@a, ram
03B4:	call	0042
03B5:	ldi	@dp, 0076
03B6:	shr1	@a
03B7:	mov	@mem, a
	inc	@b
	m8
03B8:	mov	@mem, b
	nop
03B9:	ldi	@dp, 002C
03BA:	mov	@a, mem
	nop
	m8
03BB:	mov	@b, mem
	nop
	dpdec
03BC:	sub	@b, ram
	m8
03BD:	sbb	@a, ram
03BE:	call	0042
03BF:	ldi	@dp, 0075
03C0:	shr1	@a
03C1:	mov	@mem, a
	inc	@b
	m8
03C2:	mov	@mem, b
	nop
03C3:	ldi	@dp, 001C
03C4:	mov	@a, mem
	nop
	m8
03C5:	mov	@b, mem
	nop
	dpdec
03C6:	sub	@b, ram
	m8
03C7:	sbb	@a, ram
03C8:	call	0042
03C9:	ldi	@dp, 0074
03CA:	shr1	@a
03CB:	mov	@mem, a
	inc	@b
	m8
03CC:	mov	@mem, b
	nop
03CD:	ldi	@a, 0000
03CE:	ldi	@dp, 00F6
03CF:	call	009F
03D0:	ldi	@dp, 00F6
03D1:	mov	@a, mem
	nop
03D2:	ldi	@dp, 00F3
03D3:	mov	@mem, a
	nop
	dpdec
03D4:	mov	@mem, a
	nop
	dpdec
03D5:	mov	@mem, a
	xor	@a, idb
03D6:	ldi	@dp, 0076
03D7:	ldi	@rp, 0073
03D8:	mov	@b, mem
	nop
	dpdec
03D9:	mov	@tr, mem
	nop
	dpdec
03DA:	mov	@trb, mem
	nop
03DB:	ldi	@dp, 007C
03DC:	mov	@klm, b
	nop
	m1
03DD:	mov	@klm, tr
	add	@a, m
	m3
03DE:	mov	@klm, trb
	add	@a, m
03DF:	mov	@dp, rp
	add	@a, m
	rpdec
03E0:	mov	@mem, a
	xor	@a, idb
03E1:	ldi	@dp, 007B
03E2:	mov	@klm, b
	nop
	m1
03E3:	mov	@klm, tr
	add	@a, m
	m3
03E4:	mov	@klm, trb
	add	@a, m
03E5:	mov	@dp, rp
	add	@a, m
	rpdec
03E6:	mov	@mem, a
	xor	@a, idb
03E7:	ldi	@dp, 007A
03E8:	mov	@klm, b
	nop
	m1
03E9:	mov	@klm, tr
	add	@a, m
	m3
03EA:	mov	@klm, trb
	add	@a, m
03EB:	mov	@dp, rp
	add	@a, m
	rpdec
03EC:	mov	@mem, a
	xor	@a, idb
03ED:	ldi	@dp, 0071
03EE:	sub	@a, ram
	m8
03EF:	mov	@b, mem
	nop
03F0:	call	0087
03F1:	ldi	@dp, 00CE
03F2:	add	@b, ram
	m8
03F3:	adc	@a, ram
03F4:	jnova0	03F6
03F5:	mov	@a, sgn
	nop
03F6:	call	0042
03F7:	call	00D3
03F8:	ldi	@dp, 0071
03F9:	mov	@mem, a
	nop
	m8
03FA:	mov	@mem, b
	nop
03FB:	ldi	@dp, 00CE
03FC:	mov	@a, mem
	nop
03FD:	call	0039
03FE:	ldi	@dp, 0071
03FF:	mov	@klm, a
	xor	@a, idb
	m8
0400:	or	@a, m
0401:	mov	@tr, a
	add	@b, ram
0402:	mov	@trb, b
	nop
0403:	ldi	@b, 0008
0404:	mov	@non, trb
	add	@b, idb
0405:	call	0077
0406:	ldi	@dp, 0071
0407:	mov	@mem, a
	xor	@a, idb
	dpinc
0408:	mov	@klm, tr
	nop
	m8
0409:	mov	@b, trb
	or	@a, m
040A:	add	@b, ram
040B:	call	0077
040C:	ldi	@dp, 0072
040D:	mov	@mem, a
	xor	@a, idb
	dpinc
040E:	mov	@klm, tr
	nop
	m8
040F:	mov	@b, trb
	or	@a, m
0410:	add	@b, ram
0411:	call	0077
0412:	mov	@dr, a
	nop
0413:	ldi	@dp, 0072
0414:	jrqm	0414
0415:	mov	@dr, mem
	nop
	dpdec
0416:	jrqm	0416
0417:	mov	@dr, mem
	nop
0418:	jmp	0000
0419:	jrqm	0419
041A:	mov	@l, dr
	nop
041B:	ldi	@k, 0080
041C:	ldi	@dp, 0008
041D:	jrqm	041D
041E:	mov	@l, drnf
	add	@a, n
041F:	mov	@mem, a
	xor	@a, idb
	dpinc
	m4
0420:	mov	@k, mem
	add	@a, n
	m4
0421:	mov	@mem, a
	xor	@a, idb
	dpdec
	mc
0422:	add	@a, m
0423:	add	@a, ram
0424:	ldi	@b, 0008
0425:	call	003A
0426:	call	00D3
0427:	ldi	@dp, 004C
0428:	mov	@klm, a
	xor	@a, idb
	m8
0429:	add	@a, m
042A:	mov	@tr, a
	add	@b, ram
042B:	mov	@trb, b
	nop
042C:	call	0077
042D:	ldi	@dp, 004A
042E:	mov	@klm, tr
	nop
	m8
042F:	mov	@tr, a
	xor	@a, idb
0430:	mov	@b, trb
	add	@a, m
0431:	add	@b, ram
0432:	call	0077
0433:	ldi	@dp, 0009
0434:	mov	@l, a
	xor	@a, idb
0435:	mov	@k, mem
	nop
	dpdec
0436:	mov	@l, tr
	add	@a, m
0437:	mov	@k, mem
	nop
0438:	mov	@trb, a
	nop
0439:	ldi	@dp, 00B9
043A:	mov	@a, mem
	add	@b, m
	m1
043B:	mov	@tr, b
	nop
043C:	mov	@b, mem
	nop
043D:	ldi	@dp, 007F
043E:	mov	@klm, tr
	nop
	dpdec
043F:	mov	@klm, trb
	add	@a, m
	dpinc
	m1
0440:	mov	@klm, tr
	add	@a, m
	dpdec
0441:	mov	@dr, a
	xor	@a, idb
0442:	mov	@klm, trb
	sub	@b, m
0443:	add	@b, m
0444:	jrqm	0444
0445:	mov	@dr, b
	xor	@b, idb
0446:	jmp	0000
0447:	ldi	@b, 032E
0448:	mov	@non, a
	sub	@b, idb
0449:	mov	@rp, b
	xor	@b, idb
044A:	mov	@dp, ro
	nop
044B:	jrqm	044B
044C:	mov	@b, dr
	nop
044D:	mov	@tr, dp
	shr1	@b
044E:	mov	@mem, b
	nop
	dpdec
044F:	jrqm	044F
0450:	mov	@a, dr
	nop
	dpdec
0451:	mov	@mem, b
	nop
	dpinc
	m1
0452:	mov	@mem, b
	nop
	dpinc
	m3
0453:	jrqm	0453
0454:	mov	@mem, dr
	nop
	dpclr
	md
0455:	mov	@mem, tr
	nop
0456:	call	0132
0457:	mov	@dp, mem
	nop
0458:	mov	@klm, b
	xor	@b, idb
	dpdec
0459:	mov	@l, a
	add	@b, m
045A:	mov	@mem, b
	xor	@b, idb
	dpinc
045B:	jrqm	045B
045C:	mov	@a, drnf
	add	@b, m
045D:	mov	@mem, b
	nop
	dpclr
	mf
045E:	call	0132
045F:	mov	@dp, mem
	nop
0460:	mov	@klm, b
	xor	@b, idb
	dpdec
0461:	mov	@k, mem
	add	@b, m
	dpinc
	m1
0462:	mov	@mem, b
	xor	@b, idb
	dpdec
0463:	mov	@k, mem
	add	@b, m
0464:	mov	@mem, b
	xor	@b, idb
	dpdec
0465:	mov	@l, a
	add	@b, m
0466:	mov	@mem, b
	xor	@b, idb
	dpinc
	m1
0467:	mov	@k, mem
	add	@b, m
	dpdec
	m2
0468:	mov	@mem, b
	xor	@b, idb
	dpinc
	m2
0469:	nop
	dpinc
046A:	mov	@k, mem
	add	@b, m
	dpdec
	m2
046B:	mov	@mem, b
	xor	@b, idb
	dpinc
046C:	mov	@a, mem
	add	@b, m
046D:	mov	@mem, b
	nop
	dpclr
	md
046E:	call	0132
046F:	mov	@dp, mem
	nop
0470:	mov	@klm, a
	xor	@a, idb
	dpdec
0471:	mov	@k, mem
	add	@a, m
	dpinc
0472:	mov	@mem, a
	xor	@a, idb
	dpdec
0473:	sub	@a, m
0474:	mov	@mem, a
	xor	@a, idb
	dpdec
	m1
0475:	mov	@k, mem
	nop
	m3
0476:	mov	@k, mem
	sub	@a, m
	m3
0477:	mov	@mem, a
	xor	@a, idb
	m1
0478:	mov	@klm, b
	add	@a, m
	m2
0479:	mov	@mem, a
	xor	@a, idb
	m2
047A:	mov	@b, a
	add	@a, m
047B:	mov	@mem, a
	xor	@a, idb
	dpinc
	m2
047C:	mov	@k, mem
	add	@b, idb
	dpinc
	m3
047D:	add	@a, m
047E:	mov	@k, mem
	add	@a, idb
	dpdec
	m3
047F:	mov	@mem, a
	add	@b, m
	dpinc
	m3
0480:	mov	@mem, b
	xor	@b, idb
	dpdec
0481:	ldi	@a, 0000
0482:	mov	@k, mem
	add	@b, idb
	dpinc
	m3
0483:	sub	@a, m
0484:	mov	@k, mem
	add	@a, idb
	dpdec
	m3
0485:	mov	@mem, a
	sub	@b, m
	dpinc
	m3
0486:	mov	@mem, b
	nop
0487:	jmp	0001
0488:	ldi	@b, 032E
0489:	mov	@non, a
	sub	@b, idb
048A:	mov	@rp, b
	xor	@b, idb
048B:	jrqm	048B
048C:	mov	@a, dr
	nop
048D:	mov	@dp, ro
	nop
048E:	mov	@klm, a
	nop
	dpdec
048F:	jrqm	048F
0490:	mov	@tr, dr
	nop
0491:	mov	@klm, tr
	add	@b, m
	dpdec
0492:	jrqm	0492
0493:	mov	@trb, drnf
	nop
0494:	mov	@klm, trb
	add	@b, m
	m1
0495:	mov	@k, mem
	add	@b, m
	dpinc
0496:	mov	@dr, b
	xor	@b, idb
0497:	mov	@klm, tr
	add	@b, m
	dpinc
0498:	mov	@klm, a
	add	@b, m
	m3
0499:	mov	@k, mem
	add	@b, m
	dpdec
049A:	jrqm	049A
049B:	mov	@dr, b
	xor	@b, idb
049C:	mov	@klm, tr
	add	@b, m
	dpdec
049D:	mov	@klm, trb
	add	@b, m
049E:	add	@b, m
049F:	jrqm	049F
04A0:	mov	@dr, b
	nop
04A1:	jmp	0000
04A2:	ldi	@b, 032E
04A3:	mov	@non, a
	sub	@b, idb
04A4:	mov	@rp, b
	xor	@b, idb
04A5:	jrqm	04A5
04A6:	mov	@a, dr
	nop
04A7:	mov	@dp, ro
	nop
04A8:	mov	@klm, a
	nop
	m1
04A9:	jrqm	04A9
04AA:	mov	@tr, dr
	nop
04AB:	mov	@klm, tr
	add	@b, m
	m3
04AC:	jrqm	04AC
04AD:	mov	@trb, drnf
	nop
04AE:	mov	@klm, trb
	add	@b, m
	dpdec
04AF:	mov	@k, mem
	add	@b, m
	m3
04B0:	mov	@dr, b
	xor	@b, idb
04B1:	mov	@klm, tr
	add	@b, m
	m1
04B2:	mov	@klm, a
	add	@b, m
	dpdec
04B3:	mov	@k, mem
	add	@b, m
	m1
04B4:	jrqm	04B4
04B5:	mov	@dr, b
	xor	@b, idb
04B6:	mov	@klm, tr
	add	@b, m
	m3
04B7:	mov	@klm, trb
	add	@b, m
04B8:	add	@b, m
04B9:	jrqm	04B9
04BA:	mov	@dr, b
	nop
04BB:	jmp	0000
04BC:	ldi	@b, 032E
04BD:	mov	@non, b
	add	@a, idb
04BE:	mov	@rp, a
	xor	@a, idb
04BF:	mov	@dp, ro
	nop
04C0:	jrqm	04C0
04C1:	mov	@klm, dr
	nop
	dpdec
04C2:	mov	@b, a
	add	@a, n
04C3:	adc	@b, m
04C4:	jrqm	04C4
04C5:	mov	@klm, dr
	nop
	dpdec
04C6:	add	@a, n
04C7:	adc	@b, m
04C8:	jrqm	04C8
04C9:	mov	@klm, drnf
	nop
04CA:	add	@a, n
04CB:	adc	@b, m
04CC:	mov	@dr, b
	nop
04CD:	jmp	0000
04CE:	ldi	@b, 5555
04CF:	ldi	@a, 00FF
04D0:	mov	@dp, a
	cmp	@b
04D1:	mov	@mem, b
	dec	@a
04D2:	jnsa0	04D0
04D3:	ldi	@a, 00FF
04D4:	jrqm	04D4
04D5:	mov	@dp, a
	cmp	@b
04D6:	mov	@trb, b
	xor	@b, ram
04D7:	jnzb	04DE
04D8:	mov	@b, trb
	dec	@a
04D9:	jnsa0	04D5
04DA:	cmp	@b
04DB:	jsb0	04CF
04DC:	ldi	@dr, 0000
04DD:	jmp	0000
04DE:	ldi	@a, 1000
04DF:	mov	@non, trb
	and	@a, idb
04E0:	mov	@non, dp
	or	@a, idb
04E1:	ldi	@trb, 1100
04E2:	mov	@tr, a
	shr1	@b
04E3:	mov	@non, trb
	add	@a, idb
04E4:	jncb	04E2
04E5:	ldi	@a, E000
04E6:	mov	@non, tr
	or	@a, idb
04E7:	mov	@dr, a
	nop
04E8:	jmp	0000

;Command 0x17 or 0x1F
;Dump data ROM
04E9:	ldi	@b, 0400 	;The data rom is 1k-words
04EA:	mov	@rp, a		;Point Data ROM Pointer (RP) to current word
	inc	@a		;Prepare A to get next word
04EB:	jrqm	04EB		;Wait for any pending transfer to complete, RQM => 0 (i.e. get previous byte)
04EC:	mov	@dr, ro		;Send word to external data bus (DR connects to it)
	dec	@b		;Decrement B counter
04ED:	jnzb	04EA		;Any more data words to dump?
04EE:	jmp	0000		;If not, we are done!

;Command 0x27 or 0x2F
;ROM version
04EF:	jrqm	04EF	;Wait for any pending transfer to complete (safeguard?)
04F0:	ldi	@dr, 0100 ;Output ROM version to DR (RQM => 1)
04F1:	jmp	0000 ;Go back to start
;End of ROM
04F2:	ldi	@mem, FFFF
04F3:	ldi	@mem, FFFF
04F4:	ldi	@mem, FFFF
04F5:	ldi	@mem, FFFF
04F6:	ldi	@mem, FFFF
04F7:	ldi	@mem, FFFF
04F8:	ldi	@mem, FFFF
04F9:	ldi	@mem, FFFF
04FA:	ldi	@mem, FFFF
04FB:	ldi	@mem, FFFF
04FC:	ldi	@mem, FFFF
04FD:	ldi	@mem, FFFF
04FE:	ldi	@mem, FFFF
04FF:	ldi	@mem, FFFF
0500:	ldi	@mem, FFFF
0501:	ldi	@mem, FFFF
0502:	ldi	@mem, FFFF
0503:	ldi	@mem, FFFF
0504:	ldi	@mem, FFFF
0505:	ldi	@mem, FFFF
0506:	ldi	@mem, FFFF
0507:	ldi	@mem, FFFF
0508:	ldi	@mem, FFFF
0509:	ldi	@mem, FFFF
050A:	ldi	@mem, FFFF
050B:	ldi	@mem, FFFF
050C:	ldi	@mem, FFFF
050D:	ldi	@mem, FFFF
050E:	ldi	@mem, FFFF
050F:	ldi	@mem, FFFF
0510:	ldi	@mem, FFFF
0511:	ldi	@mem, FFFF
0512:	ldi	@mem, FFFF
0513:	ldi	@mem, FFFF
0514:	ldi	@mem, FFFF
0515:	ldi	@mem, FFFF
0516:	ldi	@mem, FFFF
0517:	ldi	@mem, FFFF
0518:	ldi	@mem, FFFF
0519:	ldi	@mem, FFFF
051A:	ldi	@mem, FFFF
051B:	ldi	@mem, FFFF
051C:	ldi	@mem, FFFF
051D:	ldi	@mem, FFFF
051E:	ldi	@mem, FFFF
051F:	ldi	@mem, FFFF
0520:	ldi	@mem, FFFF
0521:	ldi	@mem, FFFF
0522:	ldi	@mem, FFFF
0523:	ldi	@mem, FFFF
0524:	ldi	@mem, FFFF
0525:	ldi	@mem, FFFF
0526:	ldi	@mem, FFFF
0527:	ldi	@mem, FFFF
0528:	ldi	@mem, FFFF
0529:	ldi	@mem, FFFF
052A:	ldi	@mem, FFFF
052B:	ldi	@mem, FFFF
052C:	ldi	@mem, FFFF
052D:	ldi	@mem, FFFF
052E:	ldi	@mem, FFFF
052F:	ldi	@mem, FFFF
0530:	ldi	@mem, FFFF
0531:	ldi	@mem, FFFF
0532:	ldi	@mem, FFFF
0533:	ldi	@mem, FFFF
0534:	ldi	@mem, FFFF
0535:	ldi	@mem, FFFF
0536:	ldi	@mem, FFFF
0537:	ldi	@mem, FFFF
0538:	ldi	@mem, FFFF
0539:	ldi	@mem, FFFF
053A:	ldi	@mem, FFFF
053B:	ldi	@mem, FFFF
053C:	ldi	@mem, FFFF
053D:	ldi	@mem, FFFF
053E:	ldi	@mem, FFFF
053F:	ldi	@mem, FFFF
0540:	ldi	@mem, FFFF
0541:	ldi	@mem, FFFF
0542:	ldi	@mem, FFFF
0543:	ldi	@mem, FFFF
0544:	ldi	@mem, FFFF
0545:	ldi	@mem, FFFF
0546:	ldi	@mem, FFFF
0547:	ldi	@mem, FFFF
0548:	ldi	@mem, FFFF
0549:	ldi	@mem, FFFF
054A:	ldi	@mem, FFFF
054B:	ldi	@mem, FFFF
054C:	ldi	@mem, FFFF
054D:	ldi	@mem, FFFF
054E:	ldi	@mem, FFFF
054F:	ldi	@mem, FFFF
0550:	ldi	@mem, FFFF
0551:	ldi	@mem, FFFF
0552:	ldi	@mem, FFFF
0553:	ldi	@mem, FFFF
0554:	ldi	@mem, FFFF
0555:	ldi	@mem, FFFF
0556:	ldi	@mem, FFFF
0557:	ldi	@mem, FFFF
0558:	ldi	@mem, FFFF
0559:	ldi	@mem, FFFF
055A:	ldi	@mem, FFFF
055B:	ldi	@mem, FFFF
055C:	ldi	@mem, FFFF
055D:	ldi	@mem, FFFF
055E:	ldi	@mem, FFFF
055F:	ldi	@mem, FFFF
0560:	ldi	@mem, FFFF
0561:	ldi	@mem, FFFF
0562:	ldi	@mem, FFFF
0563:	ldi	@mem, FFFF
0564:	ldi	@mem, FFFF
0565:	ldi	@mem, FFFF
0566:	ldi	@mem, FFFF
0567:	ldi	@mem, FFFF
0568:	ldi	@mem, FFFF
0569:	ldi	@mem, FFFF
056A:	ldi	@mem, FFFF
056B:	ldi	@mem, FFFF
056C:	ldi	@mem, FFFF
056D:	ldi	@mem, FFFF
056E:	ldi	@mem, FFFF
056F:	ldi	@mem, FFFF
0570:	ldi	@mem, FFFF
0571:	ldi	@mem, FFFF
0572:	ldi	@mem, FFFF
0573:	ldi	@mem, FFFF
0574:	ldi	@mem, FFFF
0575:	ldi	@mem, FFFF
0576:	ldi	@mem, FFFF
0577:	ldi	@mem, FFFF
0578:	ldi	@mem, FFFF
0579:	ldi	@mem, FFFF
057A:	ldi	@mem, FFFF
057B:	ldi	@mem, FFFF
057C:	ldi	@mem, FFFF
057D:	ldi	@mem, FFFF
057E:	ldi	@mem, FFFF
057F:	ldi	@mem, FFFF
0580:	ldi	@mem, FFFF
0581:	ldi	@mem, FFFF
0582:	ldi	@mem, FFFF
0583:	ldi	@mem, FFFF
0584:	ldi	@mem, FFFF
0585:	ldi	@mem, FFFF
0586:	ldi	@mem, FFFF
0587:	ldi	@mem, FFFF
0588:	ldi	@mem, FFFF
0589:	ldi	@mem, FFFF
058A:	ldi	@mem, FFFF
058B:	ldi	@mem, FFFF
058C:	ldi	@mem, FFFF
058D:	ldi	@mem, FFFF
058E:	ldi	@mem, FFFF
058F:	ldi	@mem, FFFF
0590:	ldi	@mem, FFFF
0591:	ldi	@mem, FFFF
0592:	ldi	@mem, FFFF
0593:	ldi	@mem, FFFF
0594:	ldi	@mem, FFFF
0595:	ldi	@mem, FFFF
0596:	ldi	@mem, FFFF
0597:	ldi	@mem, FFFF
0598:	ldi	@mem, FFFF
0599:	ldi	@mem, FFFF
059A:	ldi	@mem, FFFF
059B:	ldi	@mem, FFFF
059C:	ldi	@mem, FFFF
059D:	ldi	@mem, FFFF
059E:	ldi	@mem, FFFF
059F:	ldi	@mem, FFFF
05A0:	ldi	@mem, FFFF
05A1:	ldi	@mem, FFFF
05A2:	ldi	@mem, FFFF
05A3:	ldi	@mem, FFFF
05A4:	ldi	@mem, FFFF
05A5:	ldi	@mem, FFFF
05A6:	ldi	@mem, FFFF
05A7:	ldi	@mem, FFFF
05A8:	ldi	@mem, FFFF
05A9:	ldi	@mem, FFFF
05AA:	ldi	@mem, FFFF
05AB:	ldi	@mem, FFFF
05AC:	ldi	@mem, FFFF
05AD:	ldi	@mem, FFFF
05AE:	ldi	@mem, FFFF
05AF:	ldi	@mem, FFFF
05B0:	ldi	@mem, FFFF
05B1:	ldi	@mem, FFFF
05B2:	ldi	@mem, FFFF
05B3:	ldi	@mem, FFFF
05B4:	ldi	@mem, FFFF
05B5:	ldi	@mem, FFFF
05B6:	ldi	@mem, FFFF
05B7:	ldi	@mem, FFFF
05B8:	ldi	@mem, FFFF
05B9:	ldi	@mem, FFFF
05BA:	ldi	@mem, FFFF
05BB:	ldi	@mem, FFFF
05BC:	ldi	@mem, FFFF
05BD:	ldi	@mem, FFFF
05BE:	ldi	@mem, FFFF
05BF:	ldi	@mem, FFFF
05C0:	ldi	@mem, FFFF
05C1:	ldi	@mem, FFFF
05C2:	ldi	@mem, FFFF
05C3:	ldi	@mem, FFFF
05C4:	ldi	@mem, FFFF
05C5:	ldi	@mem, FFFF
05C6:	ldi	@mem, FFFF
05C7:	ldi	@mem, FFFF
05C8:	ldi	@mem, FFFF
05C9:	ldi	@mem, FFFF
05CA:	ldi	@mem, FFFF
05CB:	ldi	@mem, FFFF
05CC:	ldi	@mem, FFFF
05CD:	ldi	@mem, FFFF
05CE:	ldi	@mem, FFFF
05CF:	ldi	@mem, FFFF
05D0:	ldi	@mem, FFFF
05D1:	ldi	@mem, FFFF
05D2:	ldi	@mem, FFFF
05D3:	ldi	@mem, FFFF
05D4:	ldi	@mem, FFFF
05D5:	ldi	@mem, FFFF
05D6:	ldi	@mem, FFFF
05D7:	ldi	@mem, FFFF
05D8:	ldi	@mem, FFFF
05D9:	ldi	@mem, FFFF
05DA:	ldi	@mem, FFFF
05DB:	ldi	@mem, FFFF
05DC:	ldi	@mem, FFFF
05DD:	ldi	@mem, FFFF
05DE:	ldi	@mem, FFFF
05DF:	ldi	@mem, FFFF
05E0:	ldi	@mem, FFFF
05E1:	ldi	@mem, FFFF
05E2:	ldi	@mem, FFFF
05E3:	ldi	@mem, FFFF
05E4:	ldi	@mem, FFFF
05E5:	ldi	@mem, FFFF
05E6:	ldi	@mem, FFFF
05E7:	ldi	@mem, FFFF
05E8:	ldi	@mem, FFFF
05E9:	ldi	@mem, FFFF
05EA:	ldi	@mem, FFFF
05EB:	ldi	@mem, FFFF
05EC:	ldi	@mem, FFFF
05ED:	ldi	@mem, FFFF
05EE:	ldi	@mem, FFFF
05EF:	ldi	@mem, FFFF
05F0:	ldi	@mem, FFFF
05F1:	ldi	@mem, FFFF
05F2:	ldi	@mem, FFFF
05F3:	ldi	@mem, FFFF
05F4:	ldi	@mem, FFFF
05F5:	ldi	@mem, FFFF
05F6:	ldi	@mem, FFFF
05F7:	ldi	@mem, FFFF
05F8:	ldi	@mem, FFFF
05F9:	ldi	@mem, FFFF
05FA:	ldi	@mem, FFFF
05FB:	ldi	@mem, FFFF
05FC:	ldi	@mem, FFFF
05FD:	ldi	@mem, FFFF
05FE:	ldi	@mem, FFFF
05FF:	ldi	@mem, FFFF
0600:	ldi	@mem, FFFF
0601:	ldi	@mem, FFFF
0602:	ldi	@mem, FFFF
0603:	ldi	@mem, FFFF
0604:	ldi	@mem, FFFF
0605:	ldi	@mem, FFFF
0606:	ldi	@mem, FFFF
0607:	ldi	@mem, FFFF
0608:	ldi	@mem, FFFF
0609:	ldi	@mem, FFFF
060A:	ldi	@mem, FFFF
060B:	ldi	@mem, FFFF
060C:	ldi	@mem, FFFF
060D:	ldi	@mem, FFFF
060E:	ldi	@mem, FFFF
060F:	ldi	@mem, FFFF
0610:	ldi	@mem, FFFF
0611:	ldi	@mem, FFFF
0612:	ldi	@mem, FFFF
0613:	ldi	@mem, FFFF
0614:	ldi	@mem, FFFF
0615:	ldi	@mem, FFFF
0616:	ldi	@mem, FFFF
0617:	ldi	@mem, FFFF
0618:	ldi	@mem, FFFF
0619:	ldi	@mem, FFFF
061A:	ldi	@mem, FFFF
061B:	ldi	@mem, FFFF
061C:	ldi	@mem, FFFF
061D:	ldi	@mem, FFFF
061E:	ldi	@mem, FFFF
061F:	ldi	@mem, FFFF
0620:	ldi	@mem, FFFF
0621:	ldi	@mem, FFFF
0622:	ldi	@mem, FFFF
0623:	ldi	@mem, FFFF
0624:	ldi	@mem, FFFF
0625:	ldi	@mem, FFFF
0626:	ldi	@mem, FFFF
0627:	ldi	@mem, FFFF
0628:	ldi	@mem, FFFF
0629:	ldi	@mem, FFFF
062A:	ldi	@mem, FFFF
062B:	ldi	@mem, FFFF
062C:	ldi	@mem, FFFF
062D:	ldi	@mem, FFFF
062E:	ldi	@mem, FFFF
062F:	ldi	@mem, FFFF
0630:	ldi	@mem, FFFF
0631:	ldi	@mem, FFFF
0632:	ldi	@mem, FFFF
0633:	ldi	@mem, FFFF
0634:	ldi	@mem, FFFF
0635:	ldi	@mem, FFFF
0636:	ldi	@mem, FFFF
0637:	ldi	@mem, FFFF
0638:	ldi	@mem, FFFF
0639:	ldi	@mem, FFFF
063A:	ldi	@mem, FFFF
063B:	ldi	@mem, FFFF
063C:	ldi	@mem, FFFF
063D:	ldi	@mem, FFFF
063E:	ldi	@mem, FFFF
063F:	ldi	@mem, FFFF
0640:	ldi	@mem, FFFF
0641:	ldi	@mem, FFFF
0642:	ldi	@mem, FFFF
0643:	ldi	@mem, FFFF
0644:	ldi	@mem, FFFF
0645:	ldi	@mem, FFFF
0646:	ldi	@mem, FFFF
0647:	ldi	@mem, FFFF
0648:	ldi	@mem, FFFF
0649:	ldi	@mem, FFFF
064A:	ldi	@mem, FFFF
064B:	ldi	@mem, FFFF
064C:	ldi	@mem, FFFF
064D:	ldi	@mem, FFFF
064E:	ldi	@mem, FFFF
064F:	ldi	@mem, FFFF
0650:	ldi	@mem, FFFF
0651:	ldi	@mem, FFFF
0652:	ldi	@mem, FFFF
0653:	ldi	@mem, FFFF
0654:	ldi	@mem, FFFF
0655:	ldi	@mem, FFFF
0656:	ldi	@mem, FFFF
0657:	ldi	@mem, FFFF
0658:	ldi	@mem, FFFF
0659:	ldi	@mem, FFFF
065A:	ldi	@mem, FFFF
065B:	ldi	@mem, FFFF
065C:	ldi	@mem, FFFF
065D:	ldi	@mem, FFFF
065E:	ldi	@mem, FFFF
065F:	ldi	@mem, FFFF
0660:	ldi	@mem, FFFF
0661:	ldi	@mem, FFFF
0662:	ldi	@mem, FFFF
0663:	ldi	@mem, FFFF
0664:	ldi	@mem, FFFF
0665:	ldi	@mem, FFFF
0666:	ldi	@mem, FFFF
0667:	ldi	@mem, FFFF
0668:	ldi	@mem, FFFF
0669:	ldi	@mem, FFFF
066A:	ldi	@mem, FFFF
066B:	ldi	@mem, FFFF
066C:	ldi	@mem, FFFF
066D:	ldi	@mem, FFFF
066E:	ldi	@mem, FFFF
066F:	ldi	@mem, FFFF
0670:	ldi	@mem, FFFF
0671:	ldi	@mem, FFFF
0672:	ldi	@mem, FFFF
0673:	ldi	@mem, FFFF
0674:	ldi	@mem, FFFF
0675:	ldi	@mem, FFFF
0676:	ldi	@mem, FFFF
0677:	ldi	@mem, FFFF
0678:	ldi	@mem, FFFF
0679:	ldi	@mem, FFFF
067A:	ldi	@mem, FFFF
067B:	ldi	@mem, FFFF
067C:	ldi	@mem, FFFF
067D:	ldi	@mem, FFFF
067E:	ldi	@mem, FFFF
067F:	ldi	@mem, FFFF
0680:	ldi	@mem, FFFF
0681:	ldi	@mem, FFFF
0682:	ldi	@mem, FFFF
0683:	ldi	@mem, FFFF
0684:	ldi	@mem, FFFF
0685:	ldi	@mem, FFFF
0686:	ldi	@mem, FFFF
0687:	ldi	@mem, FFFF
0688:	ldi	@mem, FFFF
0689:	ldi	@mem, FFFF
068A:	ldi	@mem, FFFF
068B:	ldi	@mem, FFFF
068C:	ldi	@mem, FFFF
068D:	ldi	@mem, FFFF
068E:	ldi	@mem, FFFF
068F:	ldi	@mem, FFFF
0690:	ldi	@mem, FFFF
0691:	ldi	@mem, FFFF
0692:	ldi	@mem, FFFF
0693:	ldi	@mem, FFFF
0694:	ldi	@mem, FFFF
0695:	ldi	@mem, FFFF
0696:	ldi	@mem, FFFF
0697:	ldi	@mem, FFFF
0698:	ldi	@mem, FFFF
0699:	ldi	@mem, FFFF
069A:	ldi	@mem, FFFF
069B:	ldi	@mem, FFFF
069C:	ldi	@mem, FFFF
069D:	ldi	@mem, FFFF
069E:	ldi	@mem, FFFF
069F:	ldi	@mem, FFFF
06A0:	ldi	@mem, FFFF
06A1:	ldi	@mem, FFFF
06A2:	ldi	@mem, FFFF
06A3:	ldi	@mem, FFFF
06A4:	ldi	@mem, FFFF
06A5:	ldi	@mem, FFFF
06A6:	ldi	@mem, FFFF
06A7:	ldi	@mem, FFFF
06A8:	ldi	@mem, FFFF
06A9:	ldi	@mem, FFFF
06AA:	ldi	@mem, FFFF
06AB:	ldi	@mem, FFFF
06AC:	ldi	@mem, FFFF
06AD:	ldi	@mem, FFFF
06AE:	ldi	@mem, FFFF
06AF:	ldi	@mem, FFFF
06B0:	ldi	@mem, FFFF
06B1:	ldi	@mem, FFFF
06B2:	ldi	@mem, FFFF
06B3:	ldi	@mem, FFFF
06B4:	ldi	@mem, FFFF
06B5:	ldi	@mem, FFFF
06B6:	ldi	@mem, FFFF
06B7:	ldi	@mem, FFFF
06B8:	ldi	@mem, FFFF
06B9:	ldi	@mem, FFFF
06BA:	ldi	@mem, FFFF
06BB:	ldi	@mem, FFFF
06BC:	ldi	@mem, FFFF
06BD:	ldi	@mem, FFFF
06BE:	ldi	@mem, FFFF
06BF:	ldi	@mem, FFFF
06C0:	ldi	@mem, FFFF
06C1:	ldi	@mem, FFFF
06C2:	ldi	@mem, FFFF
06C3:	ldi	@mem, FFFF
06C4:	ldi	@mem, FFFF
06C5:	ldi	@mem, FFFF
06C6:	ldi	@mem, FFFF
06C7:	ldi	@mem, FFFF
06C8:	ldi	@mem, FFFF
06C9:	ldi	@mem, FFFF
06CA:	ldi	@mem, FFFF
06CB:	ldi	@mem, FFFF
06CC:	ldi	@mem, FFFF
06CD:	ldi	@mem, FFFF
06CE:	ldi	@mem, FFFF
06CF:	ldi	@mem, FFFF
06D0:	ldi	@mem, FFFF
06D1:	ldi	@mem, FFFF
06D2:	ldi	@mem, FFFF
06D3:	ldi	@mem, FFFF
06D4:	ldi	@mem, FFFF
06D5:	ldi	@mem, FFFF
06D6:	ldi	@mem, FFFF
06D7:	ldi	@mem, FFFF
06D8:	ldi	@mem, FFFF
06D9:	ldi	@mem, FFFF
06DA:	ldi	@mem, FFFF
06DB:	ldi	@mem, FFFF
06DC:	ldi	@mem, FFFF
06DD:	ldi	@mem, FFFF
06DE:	ldi	@mem, FFFF
06DF:	ldi	@mem, FFFF
06E0:	ldi	@mem, FFFF
06E1:	ldi	@mem, FFFF
06E2:	ldi	@mem, FFFF
06E3:	ldi	@mem, FFFF
06E4:	ldi	@mem, FFFF
06E5:	ldi	@mem, FFFF
06E6:	ldi	@mem, FFFF
06E7:	ldi	@mem, FFFF
06E8:	ldi	@mem, FFFF
06E9:	ldi	@mem, FFFF
06EA:	ldi	@mem, FFFF
06EB:	ldi	@mem, FFFF
06EC:	ldi	@mem, FFFF
06ED:	ldi	@mem, FFFF
06EE:	ldi	@mem, FFFF
06EF:	ldi	@mem, FFFF
06F0:	ldi	@mem, FFFF
06F1:	ldi	@mem, FFFF
06F2:	ldi	@mem, FFFF
06F3:	ldi	@mem, FFFF
06F4:	ldi	@mem, FFFF
06F5:	ldi	@mem, FFFF
06F6:	ldi	@mem, FFFF
06F7:	ldi	@mem, FFFF
06F8:	ldi	@mem, FFFF
06F9:	ldi	@mem, FFFF
06FA:	ldi	@mem, FFFF
06FB:	ldi	@mem, FFFF
06FC:	ldi	@mem, FFFF
06FD:	ldi	@mem, FFFF
06FE:	ldi	@mem, FFFF
06FF:	ldi	@mem, FFFF
0700:	ldi	@mem, FFFF
0701:	ldi	@mem, FFFF
0702:	ldi	@mem, FFFF
0703:	ldi	@mem, FFFF
0704:	ldi	@mem, FFFF
0705:	ldi	@mem, FFFF
0706:	ldi	@mem, FFFF
0707:	ldi	@mem, FFFF
0708:	ldi	@mem, FFFF
0709:	ldi	@mem, FFFF
070A:	ldi	@mem, FFFF
070B:	ldi	@mem, FFFF
070C:	ldi	@mem, FFFF
070D:	ldi	@mem, FFFF
070E:	ldi	@mem, FFFF
070F:	ldi	@mem, FFFF
0710:	ldi	@mem, FFFF
0711:	ldi	@mem, FFFF
0712:	ldi	@mem, FFFF
0713:	ldi	@mem, FFFF
0714:	ldi	@mem, FFFF
0715:	ldi	@mem, FFFF
0716:	ldi	@mem, FFFF
0717:	ldi	@mem, FFFF
0718:	ldi	@mem, FFFF
0719:	ldi	@mem, FFFF
071A:	ldi	@mem, FFFF
071B:	ldi	@mem, FFFF
071C:	ldi	@mem, FFFF
071D:	ldi	@mem, FFFF
071E:	ldi	@mem, FFFF
071F:	ldi	@mem, FFFF
0720:	ldi	@mem, FFFF
0721:	ldi	@mem, FFFF
0722:	ldi	@mem, FFFF
0723:	ldi	@mem, FFFF
0724:	ldi	@mem, FFFF
0725:	ldi	@mem, FFFF
0726:	ldi	@mem, FFFF
0727:	ldi	@mem, FFFF
0728:	ldi	@mem, FFFF
0729:	ldi	@mem, FFFF
072A:	ldi	@mem, FFFF
072B:	ldi	@mem, FFFF
072C:	ldi	@mem, FFFF
072D:	ldi	@mem, FFFF
072E:	ldi	@mem, FFFF
072F:	ldi	@mem, FFFF
0730:	ldi	@mem, FFFF
0731:	ldi	@mem, FFFF
0732:	ldi	@mem, FFFF
0733:	ldi	@mem, FFFF
0734:	ldi	@mem, FFFF
0735:	ldi	@mem, FFFF
0736:	ldi	@mem, FFFF
0737:	ldi	@mem, FFFF
0738:	ldi	@mem, FFFF
0739:	ldi	@mem, FFFF
073A:	ldi	@mem, FFFF
073B:	ldi	@mem, FFFF
073C:	ldi	@mem, FFFF
073D:	ldi	@mem, FFFF
073E:	ldi	@mem, FFFF
073F:	ldi	@mem, FFFF
0740:	ldi	@mem, FFFF
0741:	ldi	@mem, FFFF
0742:	ldi	@mem, FFFF
0743:	ldi	@mem, FFFF
0744:	ldi	@mem, FFFF
0745:	ldi	@mem, FFFF
0746:	ldi	@mem, FFFF
0747:	ldi	@mem, FFFF
0748:	ldi	@mem, FFFF
0749:	ldi	@mem, FFFF
074A:	ldi	@mem, FFFF
074B:	ldi	@mem, FFFF
074C:	ldi	@mem, FFFF
074D:	ldi	@mem, FFFF
074E:	ldi	@mem, FFFF
074F:	ldi	@mem, FFFF
0750:	ldi	@mem, FFFF
0751:	ldi	@mem, FFFF
0752:	ldi	@mem, FFFF
0753:	ldi	@mem, FFFF
0754:	ldi	@mem, FFFF
0755:	ldi	@mem, FFFF
0756:	ldi	@mem, FFFF
0757:	ldi	@mem, FFFF
0758:	ldi	@mem, FFFF
0759:	ldi	@mem, FFFF
075A:	ldi	@mem, FFFF
075B:	ldi	@mem, FFFF
075C:	ldi	@mem, FFFF
075D:	ldi	@mem, FFFF
075E:	ldi	@mem, FFFF
075F:	ldi	@mem, FFFF
0760:	ldi	@mem, FFFF
0761:	ldi	@mem, FFFF
0762:	ldi	@mem, FFFF
0763:	ldi	@mem, FFFF
0764:	ldi	@mem, FFFF
0765:	ldi	@mem, FFFF
0766:	ldi	@mem, FFFF
0767:	ldi	@mem, FFFF
0768:	ldi	@mem, FFFF
0769:	ldi	@mem, FFFF
076A:	ldi	@mem, FFFF
076B:	ldi	@mem, FFFF
076C:	ldi	@mem, FFFF
076D:	ldi	@mem, FFFF
076E:	ldi	@mem, FFFF
076F:	ldi	@mem, FFFF
0770:	ldi	@mem, FFFF
0771:	ldi	@mem, FFFF
0772:	ldi	@mem, FFFF
0773:	ldi	@mem, FFFF
0774:	ldi	@mem, FFFF
0775:	ldi	@mem, FFFF
0776:	ldi	@mem, FFFF
0777:	ldi	@mem, FFFF
0778:	ldi	@mem, FFFF
0779:	ldi	@mem, FFFF
077A:	ldi	@mem, FFFF
077B:	ldi	@mem, FFFF
077C:	ldi	@mem, FFFF
077D:	ldi	@mem, FFFF
077E:	ldi	@mem, FFFF
077F:	ldi	@mem, FFFF
0780:	ldi	@mem, FFFF
0781:	ldi	@mem, FFFF
0782:	ldi	@mem, FFFF
0783:	ldi	@mem, FFFF
0784:	ldi	@mem, FFFF
0785:	ldi	@mem, FFFF
0786:	ldi	@mem, FFFF
0787:	ldi	@mem, FFFF
0788:	ldi	@mem, FFFF
0789:	ldi	@mem, FFFF
078A:	ldi	@mem, FFFF
078B:	ldi	@mem, FFFF
078C:	ldi	@mem, FFFF
078D:	ldi	@mem, FFFF
078E:	ldi	@mem, FFFF
078F:	ldi	@mem, FFFF
0790:	ldi	@mem, FFFF
0791:	ldi	@mem, FFFF
0792:	ldi	@mem, FFFF
0793:	ldi	@mem, FFFF
0794:	ldi	@mem, FFFF
0795:	ldi	@mem, FFFF
0796:	ldi	@mem, FFFF
0797:	ldi	@mem, FFFF
0798:	ldi	@mem, FFFF
0799:	ldi	@mem, FFFF
079A:	ldi	@mem, FFFF
079B:	ldi	@mem, FFFF
079C:	ldi	@mem, FFFF
079D:	ldi	@mem, FFFF
079E:	ldi	@mem, FFFF
079F:	ldi	@mem, FFFF
07A0:	ldi	@mem, FFFF
07A1:	ldi	@mem, FFFF
07A2:	ldi	@mem, FFFF
07A3:	ldi	@mem, FFFF
07A4:	ldi	@mem, FFFF
07A5:	ldi	@mem, FFFF
07A6:	ldi	@mem, FFFF
07A7:	ldi	@mem, FFFF
07A8:	ldi	@mem, FFFF
07A9:	ldi	@mem, FFFF
07AA:	ldi	@mem, FFFF
07AB:	ldi	@mem, FFFF
07AC:	ldi	@mem, FFFF
07AD:	ldi	@mem, FFFF
07AE:	ldi	@mem, FFFF
07AF:	ldi	@mem, FFFF
07B0:	ldi	@mem, FFFF
07B1:	ldi	@mem, FFFF
07B2:	ldi	@mem, FFFF
07B3:	ldi	@mem, FFFF
07B4:	ldi	@mem, FFFF
07B5:	ldi	@mem, FFFF
07B6:	ldi	@mem, FFFF
07B7:	ldi	@mem, FFFF
07B8:	ldi	@mem, FFFF
07B9:	ldi	@mem, FFFF
07BA:	ldi	@mem, FFFF
07BB:	ldi	@mem, FFFF
07BC:	ldi	@mem, FFFF
07BD:	ldi	@mem, FFFF
07BE:	ldi	@mem, FFFF
07BF:	ldi	@mem, FFFF
07C0:	ldi	@mem, FFFF
07C1:	ldi	@mem, FFFF
07C2:	ldi	@mem, FFFF
07C3:	ldi	@mem, FFFF
07C4:	ldi	@mem, FFFF
07C5:	ldi	@mem, FFFF
07C6:	ldi	@mem, FFFF
07C7:	ldi	@mem, FFFF
07C8:	ldi	@mem, FFFF
07C9:	ldi	@mem, FFFF
07CA:	ldi	@mem, FFFF
07CB:	ldi	@mem, FFFF
07CC:	ldi	@mem, FFFF
07CD:	ldi	@mem, FFFF
07CE:	ldi	@mem, FFFF
07CF:	ldi	@mem, FFFF
07D0:	ldi	@mem, FFFF
07D1:	ldi	@mem, FFFF
07D2:	ldi	@mem, FFFF
07D3:	ldi	@mem, FFFF
07D4:	ldi	@mem, FFFF
07D5:	ldi	@mem, FFFF
07D6:	ldi	@mem, FFFF
07D7:	ldi	@mem, FFFF
07D8:	ldi	@mem, FFFF
07D9:	ldi	@mem, FFFF
07DA:	ldi	@mem, FFFF
07DB:	ldi	@mem, FFFF
07DC:	ldi	@mem, FFFF
07DD:	ldi	@mem, FFFF
07DE:	ldi	@mem, FFFF
07DF:	ldi	@mem, FFFF
07E0:	ldi	@mem, FFFF
07E1:	ldi	@mem, FFFF
07E2:	ldi	@mem, FFFF
07E3:	ldi	@mem, FFFF
07E4:	ldi	@mem, FFFF
07E5:	ldi	@mem, FFFF
07E6:	ldi	@mem, FFFF
07E7:	ldi	@mem, FFFF
07E8:	ldi	@mem, FFFF
07E9:	ldi	@mem, FFFF
07EA:	ldi	@mem, FFFF
07EB:	ldi	@mem, FFFF
07EC:	ldi	@mem, FFFF
07ED:	ldi	@mem, FFFF
07EE:	ldi	@mem, FFFF
07EF:	ldi	@mem, FFFF
07F0:	ldi	@mem, FFFF
07F1:	ldi	@mem, FFFF
07F2:	ldi	@mem, FFFF
07F3:	ldi	@mem, FFFF
07F4:	ldi	@mem, FFFF
07F5:	ldi	@mem, FFFF
07F6:	ldi	@mem, FFFF
07F7:	ldi	@mem, FFFF
07F8:	ldi	@mem, FFFF
07F9:	ldi	@mem, FFFF
07FA:	ldi	@mem, FFFF
07FB:	ldi	@mem, FFFF
07FC:	ldi	@mem, FFFF
07FD:	ldi	@mem, FFFF
07FE:	ldi	@mem, FFFF
07FF:	ldi	@mem, FFFF
